package LeeJS;

public class J24_CompareObject {
	
	/*
			
			객체 비교하기
			"내 차 색깔과 당신 차 색깔이 똑같다"		--> 색깔만 똑같다
			"내 차와 당신 차가 똑같다"			--> 색깔만 똑같은게 아니라 모든게 다 똑같다(ex : 상태, 색상, 종류)
			
			클래스의 객체는 실제 데이터가 저장된 주소를 가지고 있기 때문에 단순비교==로는 객체가 서로 같은지 알 수 없음!~!
			자바에서는 기본적으로 객체를 비교할때에는 equals, hashCode 메서드를 이용함
			또한, 유틸리티 클래스은 Comparable, Comparator 등을 이용하기도 함
			
	 */
	
	public static void main(String[] args) {
		
		CarVO mycar = new CarVO("새것", "빨강", "스포츠카");
		CarVO yourcar = new CarVO("새것", "빨강", "스포츠카");
		
		System.out.println(mycar);
		System.out.println(yourcar);
		
		if(mycar == yourcar){
			
			System.out.println("내꺼랑 네꺼랑 같음 우왕ㅋ");
			
		}else System.out.println("내꺼랑 네꺼랑 다름?ㅋ");
		
		/* ------------------------------------- */
		
		if(mycar.color == yourcar.color){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
		/* ------------------------------------- */
		
		String char1 = "가";
		String char2 = "가";
		
		if(char1 == char2){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
		/* ------------------------------------- */
		
		String char3 = "나";
		String char4 = new String("나");
		
		if(char3 == char4){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
		if(char3.equals(char4)){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
		/* ------------------------------------- */
		
		String char5 = new String("다");
		String char6 = new String("다");
		
		if(char5 == char6){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
		
		if(char5.equals(char6)){
			
			System.out.println("너님이랑 나님이랑 같음 우왕ㅋ");
			
		}else System.out.println("너님이랑 나님이랑 다름 ㅠ_ㅠ");
		
	}

}

class CarVO{
	
	public String status;
	public String color;
	public String type;
	
	public CarVO(){}
	
	public CarVO(String status, String color, String type){
		
		this.status = status;
		this.color = color;
		this.type = type;
		
	}
	
}